
import threading
import logging

logging.basicConfig(level=logging.INFO)


# worker1是daemon进程，worker2是daemon进程，
def worker1():
    # 这里没有写daemon，那么就是当前线程的damon，即父线程worker1的daemon,为True
    threading.Thread(target=worker2, name="worker2").start()
    for i in range(2):
        print('{} is running {}'.format(threading.current_thread().name, threading.enumerate()))


def worker2():
    for i in range(5):
        print('{} is running {}'.format(threading.current_thread().name, threading.enumerate()))


t = threading.Thread(target=worker1, name="worker1", daemon=True)
t.start()
t.join()
print("end")


"""
join（timeout=None），是线程的标准方法之一。
1.一个线程中调用另一个线程的join方法，调用者将被阻塞，直到被调用线程终止。
2.一个线程可以被join多次。
3.timeout参数指定调用者等待多久，没有设置就是一直等待都调用线程结束。
4.调用谁的join方法，就是join谁，就要等谁。
"""